package com.jiuzhou.crawlers.taobao.processor.taobao.urlstrategy.impl;

import java.util.List;

import com.jiuzhou.crawlers.taobao.processor.taobao.constant.CommonConstant;
import com.jiuzhou.crawlers.taobao.processor.taobao.urlstrategy.ITaobaoClawerStrategy;

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Request;
import us.codecraft.webmagic.selector.Json;

	/**
	 * 项目名称：大数据爬虫
	 * @author yanganzhen
	 * version-code：1.0
     * 类说明：爬虫策略实现类
     * 创建时间：2016年12月9日
	 */
public class PreocessorStrategyImpl implements ITaobaoClawerStrategy{

	/**方法名称：UseWorldUrl()
	 * 方法说明：爬取链接https://world.taobao.com/search/json.htm
	 */
	@Override
	public void useWorldUrl(Page page) {
	    if(page.getUrl().regex("https://world.taobao.com/search/json.htm").match()){//list
	         String orginJson = page.getJson().toString();
	         Json json = new Json(orginJson); 
	         
	           //通过正则取出需求的数据放入文件中
	            {   
	        	 	page.putField("itemId",json.jsonPath("$.itemList[*].itemId").all());
	        	 	page.putField("Title", json.jsonPath("$.itemList[*].tip").all());
	        	 	page.putField("Nick", json.jsonPath("$.itemList[*].nick").all());
	        	 	page.putField("StoreLink", json.jsonPath("$.itemList[*].storeLink").all());
	        	 	page.putField("OriginPrice", json.jsonPath("$.itemList[*].price").all());
	        	 	page.putField("NowPrice",json.jsonPath("$.itemList[*].priceWap").all());
	        	 	page.putField("Location",json.jsonPath("$.itemList[*].loc").all());
	        	 	page.putField("DetailUrl",json.jsonPath("$.itemList[*].href").all());
	        	 	page.putField("commend",json.jsonPath("$.itemList[*].commend").all());
	        	 	page.putField("tradeNum",json.jsonPath("$.itemList[*].tradeNum").all());
	        	 	if(json.jsonPath("$.itemList[*].itemId").all().size()>0)
	        	 	page.putField("splite","-------------------------------------------------------------------------------------------------------");
	            }
	    }
	    
         //添加需要爬取的所有链接
          for(int i = 0 ; i <= 90 ; i++){
        	  int num = i*60; 
        	  //判断所有链接是否已经加入爬行队列
        	  if(CommonConstant.GOODSTYPE.size()>0)
        	  page.addTargetRequest("https://world.taobao.com/search/json.htm?q="+CommonConstant.GOODSTYPE.get(0)+"&navigator=all&_input_charset=utf-8&json=on&s="+num);
          }
          
          //将已经加入队列的链接关键词删除
          if(CommonConstant.GOODSTYPE.size()>0)
           CommonConstant.GOODSTYPE.remove(0);
	}

	
	/**方法名称：UseScriptPageConfigUrl()
	 * 方法说明：爬取链接https://s.taobao.com/search?q=key&s=size
	 */
	@Override
	public void useScriptPageConfigUrl(Page page) {
		// TODO Auto-generated method stub
		
	}

	/**方法名称：UseScriptPageConfigUrl()
	 * 方法说明：爬取链接https://s.taobao.com/search?q=key&s=size
	 */
	@Override
	public void allSortsUrl(Page page) {
	    if(page.getUrl().regex("https://world.taobao.com/search/json.htm").match()){//list
	         String orginJson = page.getJson().toString();
	         Json json = new Json(orginJson); 
	         
	           //通过正则取出需求的数据放入文件中
	            {   
	        	 	page.putField("itemId",json.jsonPath("$.itemList[*].itemId").all());
	        	 	page.putField("Title", json.jsonPath("$.itemList[*].tip").all());
	        	 	page.putField("OriginPrice", json.jsonPath("$.itemList[*].price").all());
	        	 	page.putField("NowPrice",json.jsonPath("$.itemList[*].priceWap").all());
	        	 	page.putField("Location",json.jsonPath("$.itemList[*].loc").all());
	        	 	page.putField("DetailUrl",json.jsonPath("$.itemList[*].href").all());
	        	 	page.putField("tradeNum",json.jsonPath("$.itemList[*].tradeNum").all());
	        	 	if(json.jsonPath("$.itemList[*].itemId").all().size()>0)
	        	 	page.putField("splite","-------------------------------------------------------------------------------------------------------");
	            }
	    }else{
	        //添加需要爬取的所有链接
	         for(int i = 0 ; i <= 90 ; i++){
	       	  int num = i*60; 
	       	  //判断所有链接是否已经加入爬行队列
	       	  if(CommonConstant.GOODSTYPE.size()>0)
	       	  page.addTargetRequest("https://world.taobao.com/search/json.htm?q="+CommonConstant.GOODSTYPE.get(0)+"&navigator=all&_input_charset=utf-8&json=on&s="+num);
	         }
	         
	         //将已经加入队列的链接关键词删除
	         if(CommonConstant.GOODSTYPE.size()>0)
	          CommonConstant.GOODSTYPE.remove(0);
	    }
	    

		
	}

}
